package cn.wn.shiro;

import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.crypto.hash.Sha256Hash;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class App {
    /**
     * shiro提供的md5加密
     *
     * 明文      密文   （彩虹表，撞库）
     * 123456   e10adc3949ba59abbe56e057f20f883e
     */
    @Test
    public void md5(){
        Md5Hash md5Hash = new Md5Hash("123456");
        System.out.println(md5Hash.toString());
    }

    // 加密，加盐（用户名作为盐，确保密码的安全性）
    @Test
    public void md5Salt(){
        // 4141d40e7f70cf531808737f4bfd4ef2
        String salt = "xiaoyuan";
        Md5Hash md5Hash = new Md5Hash("123456",salt);
        System.out.println(md5Hash.toString());
    }

    // 加密，加盐，加迭代次数
    @Test
    public void md5Salt2(){
        // 7500e860ab145a5c51f58e98db9de954
        String salt = "张三";
        Md5Hash md5Hash = new Md5Hash("123456",salt,2);
        System.out.println(md5Hash.toString());
    }

    @Test
    public void sha(){
        Sha256Hash hash = new Sha256Hash("123456");
        System.out.println( hash.toString());
    }
}
